let express = require("express")
let app = express()
app.listen(3000, () => {
    console.log("3000ok");
})


// app.get("/index",(req,res)=>{
//     // 处理（有的时候，处理的过程过于麻烦，所以我们希望分步骤，封装函数）
//     res.send("响应")
// })



// 处理事件的中间环节被称为中间件--------------------------

// app.get("/index",(req,res,next)=>{

//     // 第一步

//     next()
// })

// app.get("/index",(req,res,next)=>{

//     // 第二步

//     next()
// })


// app.get("/index",(req,res,next)=>{

//     // 第三步

//     res.send("响应")
// })




// ---------------------------------


/* let  fun1=(req, res, next) => {

    // 第一步
    console.log(1);

    next()
}
let fun2=(req, res, next) => {

    // 第二步
    console.log(2);


    next()
}

app.get("/index",fun1, fun2,fun3,fun4, (req, res, next) => {

    // 第三步
    console.log(3);


    res.send("响应")
}) */


// ---------------------
// app.use(中间件函数)   和app.get  app.post一样 都是可以匹配路由的
// 不同：可以匹配到任何路由
// 也就是说，可以没有路径，并且不区分方法 （没有路由的区分）


let  fun1=(req, res, next) => {

    // 第一步
    console.log(1);

    next()
}
let fun2=(req, res, next) => {

    // 第二步
    console.log(2);

    next()
}


// app.get("/index",fun1)
// app.get("/index",fun2)



app.use(fun1)
app.use(fun2)
// app.use(fun3)
// app.use(fun4)
// app.use(fun5)
// ..........


app.get("/index",(req, res, next) => {

    // 第三步
    console.log(3);


    res.send("响应")
})




